package com.sg.dto.biz.app.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * @desc ImplementCurrentParentCycleTypeAnalysisComReqDto
 * @使用场景
 */
@Data
public class ImplementCurrentParentCycleTypeAnalysisComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 是否有过程周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否有过程周期")
    private String haveProcessCycle;

    /**
     * 父周期比对结果 TRUE:是 FALSE:否
     */
    @ApiModelProperty("父周期比对结果")
    private String fatherCycleComResult;

    /**
     * 中期比对结果 TRUE:是 FALSE:否
     */
    @ApiModelProperty("中期比对结果")
    private String midCycleComResult;

    /**
     * 子周期比对结果 TRUE:是 FALSE:否
     */
    @ApiModelProperty("子周期比对结果")
    private String subCycleComResult;

    /**
     * 执行周期阶段ID
     */
    @ApiModelProperty("执行周期阶段ID")
    private String executeCycleStageId;

    /**
     * 被评对象目标周期ID
     */
    @ApiModelProperty("被评对象目标周期ID")
    private String evaObjTargetCycleId;

    /**
     * 周期ID
     */
    @ApiModelProperty("周期ID")
    private String cycleId;

    /**
     * 更新周期ID
     */
    @ApiModelProperty("更新周期ID")
    private String updateCycleId;

    /**
     * 周期类型标识
     */
    @ApiModelProperty("周期类型标识")
    private String cycleTypeCode;

    /**
     * 是否父周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否父周期")
    private String isFatherCycle;

    /**
     * 是否中期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否中期")
    private String isMetaphase;

    /**
     * 是否子周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否子周期")
    private String isSubCycle;

    /**
     * 冗余评价模板ID
     */
    @ApiModelProperty("冗余评价模板ID")
    private String evaluationTemplateId;

    /**
     * 周期模式 FATHER_SON_CYCLE:父子周期 SINGLE_CYCLE:单周期 IRREGULAR_CYCLE:不规则周期
     */
    @ApiModelProperty("周期模式")
    private String cycleMode;

    /**
     * 末级周期类型 HALF_YEAR:半年 QUARTER:季度 DOUBLE_MONTHS:双月 MONTH:月 DOUBLE_WEEKS:双周 WEEK:周
     */
    @ApiModelProperty("末级周期类型")
    private String lastCycleType;

    /**
     * 过程中期周期类型
     */
    @ApiModelProperty("过程中期周期类型")
    private String midOfProcessCycleType;

    /**
     * 子周期周期类型
     */
    @ApiModelProperty("子周期周期类型")
    private String subcycleType;

    /**
     * 中期周期类型
     */
    @ApiModelProperty("中期周期类型")
    private String midCycleType;

    /**
     * 父周期周期类型
     */
    @ApiModelProperty("父周期周期类型")
    private String fatherCycleType;

    /**
     * 评价模板数据参数
     */
    @ApiModelProperty("评价模板数据参数")
    private String schemeDataPara;

    /**
     * 自定义字段
     */
    @ApiModelProperty("得分公式")
    private String customField;

    /**
     * 汇报类型 ARTIFICIAL_REPORT:人工汇报 SEMIAUTOMATIC_REPORT:半自动汇报 AUTO_REPORT:全自动汇报
     */
    @ApiModelProperty("汇报类型")
    private String reportType;

    /**
     * 实际得分是否开启本级得分 TRUE:是 FALSE:否
     */
    @ApiModelProperty("实际得分是否开启本级得分")
    private String actualScoreIsOpenLocalLevelScore;

    /**
     * 是否开启下级汇报限制 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否开启下级汇报限制")
    private String isOpenSubReportLimit;

    /**
     * 冗余开启OKR场景
     */
    @ApiModelProperty("冗余开启OKR场景")
    private String isOkrPlanScene;

    /**
     * 开启或不开启过程中期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("开启或不开启过程中期")
    private String openOrCloseMidProcess;

    /**
     * 开启或不开启中期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("开启或不开启中期")
    private String openOrCloseMidCycle;

    /**
     * 实际值小数点规则
     */
    @ApiModelProperty("实际值小数点规则")
    private Long actualValueDecimalPoint;

    /**
     * 进度小数点规则
     */
    @ApiModelProperty("进度小数点规则")
    private Long progressDecimalPoint;

    /**
     * 实际得分小数点规则
     */
    @ApiModelProperty("实际得分小数点规则")
    private Long scoreDecimalPoint;

    /**
     * 小数最后一位规则 MALING:尾数抹零 ROUNDED:尾数四舍五入
     */
    @ApiModelProperty("小数最后一位规则")
    private String decimalDigitsLastRules;

    /**
     * 主观评分满分值
     */
    @ApiModelProperty("主观评分满分值")
    private Long subjectiveRatingTotalValue;

    /**
     * 主客观得分_主观得分权重
     */
    @ApiModelProperty("主客观得分_主观得分权重")
    private Double subjectiveScoreWeight;

    /**
     * 主客观得分_客观得分权重
     */
    @ApiModelProperty("主客观得分_客观得分权重")
    private Double objectiveScoreWeight;

    /**
     * 过程汇报得分_过程中期权重
     */
    @ApiModelProperty("过程汇报得分_过程中期权重")
    private Double processReportScoreProMidWeight;

    /**
     * 汇报得分_过程汇报得分权重
     */
    @ApiModelProperty("汇报得分_过程汇报得分权重")
    private Double reportScoreProcessWeight;

    /**
     * 过程汇报得分_中期得分权重
     */
    @ApiModelProperty("过程汇报得分_中期得分权重")
    private Double processReportScoreMidWeight;

    /**
     * 过程汇报得分_汇报平均分权重
     */
    @ApiModelProperty("过程汇报得分_汇报平均分权重")
    private Double processReportScoreAvgWeight;

    /**
     * 汇报得分_主客观得分权重
     */
    @ApiModelProperty("汇报得分_主客观得分权重")
    private Double reportScoreSubAndObjWeight;

    /**
     * 过程汇报得分_下级KR权重
     */
    @ApiModelProperty("过程汇报得分_下级KR权重")
    private Double processReportScoreKrWeight;

    /**
     * 实际得分_本级汇报得分权重
     */
    @ApiModelProperty("实际得分_本级汇报得分权重")
    private Double actualScoreLocalLevelWeight;

    /**
     * 实际得分_下级汇报得分权重
     */
    @ApiModelProperty("实际得分_下级汇报得分权重")
    private Double actualScoreLowerLevelWeight;

    /**
     * 参照值_下级O权重
     */
    @ApiModelProperty("参照值_下级O权重")
    private Double countProObWeight;

    /**
     * 参照值_下级KR权重
     */
    @ApiModelProperty("参照值_下级KR权重")
    private Double countProKrWeight;

}
